package org.kotboot.kit;

import org.kotboot.cons.ConsJwt;
import io.jsonwebtoken.*;
import org.apache.tomcat.util.codec.binary.Base64;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.util.Date;
/**
 *
 *
 * @author jisong.sun
 * @date 18-4-28 上午10:29
 * @param
 * @return
 * @modify-by
 */
@Component
public class JwtKit {

//    @Autowired
//    ConsJwt jwt;
//
//    public static String getLastestSecret(){
//        return jwt.getSecret();
//    }
//
//    /**
//     * 由字符串生成加密KEY
//     */
//    public static SecretKey generalKey(){
//        String key = getLastestSecret();
//        byte[] codekey = Base64.decodeBase64(key);
//        SecretKey keySpec = new SecretKeySpec(codekey, 0, codekey.length, "AES");
//        return keySpec;
//    }
//
//
//    public static String create(String subject){
//        SignatureAlgorithm hS256 = SignatureAlgorithm.HS256;
//        Date now = new Date();
//        long time = now.getTime();
//        SecretKey generalKey = generalKey();
//        long expMills = jwt.getTtl() + time;
//        Date exp = new Date(expMills);
//        JwtBuilder builder = Jwts.builder()
//                .setId(jwt.getId())
//                .setIssuedAt(now)
//                .setExpiration(exp)
//                .setSubject(subject)
//                .signWith(hS256,generalKey);
//        return builder.compact();
//    }
//
//    public static Jws<Claims> parse(String jwt){
//        SecretKey key = generalKey();
//        Jws<Claims> claimsJws = Jwts.parser().setSigningKey(key).parseClaimsJws(jwt);
//        return claimsJws;
//    }
}
